final public function loadPk(& $values) {
		$this->pk = [];
		$this->full_pk = true;
		if (!empty($this->collection_object)) {
			foreach ($this->collection_object->data['pk'] as $v) {
				// inject tenant
				if (!empty($this->collection_object->primary_model->tenant) && $v == $this->collection_object->primary_model->tenant_column) {
					if (!isset($values[$this->collection_object->primary_model->tenant_column])) {
						$values[$this->collection_object->primary_model->tenant_column] = \Tenant::id();
					}
				}
				if (isset($values[$v])) {
					$temp = \Object\Table\Columns::processSingleColumnType($v, $this->collection_object->primary_model->columns[$v], $values[$v]);
					if (!empty($temp[$v])) { // pk can not be empty
						$this->pk[$v] = $temp[$v];
					} else {
						$this->full_pk = false;
					}
				} else {
					$this->full_pk = false;
				}
			}
		} else {
			$this->full_pk = false;
		}
	}