| <?php |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| namespace think\db\builder; |
|
|
| use think\db\Builder; |
|
|
| |
| |
| |
| class Pgsql extends Builder |
| { |
| protected $insertSql = 'INSERT INTO %TABLE% (%FIELD%) VALUES (%DATA%) %COMMENT%'; |
| protected $insertAllSql = 'INSERT INTO %TABLE% (%FIELD%) %DATA% %COMMENT%'; |
|
|
| |
| |
| |
| |
| |
| |
| public function parseLimit($limit) |
| { |
| $limitStr = ''; |
| if (!empty($limit)) { |
| $limit = explode(',', $limit); |
| if (count($limit) > 1) { |
| $limitStr .= ' LIMIT ' . $limit[1] . ' OFFSET ' . $limit[0] . ' '; |
| } else { |
| $limitStr .= ' LIMIT ' . $limit[0] . ' '; |
| } |
| } |
| return $limitStr; |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| protected function parseKey($key, $options = [], $strict = false) |
| { |
| if (is_numeric($key)) { |
| return $key; |
| } elseif ($key instanceof Expression) { |
| return $key->getValue(); |
| } |
|
|
| $key = trim($key); |
| if (strpos($key, '$.') && false === strpos($key, '(')) { |
| |
| list($field, $name) = explode('$.', $key); |
| $key = $field . '->>\'' . $name . '\''; |
| } elseif (strpos($key, '.')) { |
| list($table, $key) = explode('.', $key, 2); |
| if ('__TABLE__' == $table) { |
| $table = $this->query->getTable(); |
| } |
| if (isset($options['alias'][$table])) { |
| $table = $options['alias'][$table]; |
| } |
| } |
| if (isset($table)) { |
| $key = $table . '.' . $key; |
| } |
| return $key; |
| } |
|
|
| |
| |
| |
| |
| |
| protected function parseRand() |
| { |
| return 'RANDOM()'; |
| } |
|
|
| } |
|
|