public function setUp() { $forkRate = 16; $file = new FileResourceProxy(fopen("php://memory", "w")); $doublesFile = new FileResourceProxy(fopen("php://memory", "w")); $tableSchemaFile = new FileResourceProxy(fopen("php://memory", "w")); $indexSchemaFile = new FileResourceProxy(fopen("php://memory", "w")); $tableSchema = new TableSchema($tableSchemaFile, $indexSchemaFile); $columnPageA = new ColumnSchema(); $columnPageA->setName("columnB"); $columnPageA->setIndex(0); $columnPageA->setDataType(DataType::INT()); $columnPageA->setLength(4); $tableSchema->addColumnSchema($columnPageA); $columnPageB = new ColumnSchema(); $columnPageB->setName("columnC"); $columnPageB->setIndex(1); $columnPageB->setDataType(DataType::VARCHAR()); $columnPageB->setLength(4); $tableSchema->addColumnSchema($columnPageB); $indexPage = new IndexSchema(); $indexPage->setName("test-index"); $indexPage->setColumns([0, 1]); $indexPage->setType(Type::INDEX()); $indexPage->setEngine(IndexEngine::BTREE()); $this->btree = new BTree($file, $tableSchema, $indexPage, $forkRate); $this->btree->setDoublesFile($doublesFile); $this->btree->setIsDevelopmentMode(true); }
public function convertBinaryToString($binary, DataType $dataType) { switch ($dataType) { case DataType::BIT(): return $binary; case DataType::BOOL(): break; ### NUMERIC ### NUMERIC case DataType::TINYINT(): return (int) ord($binary); case DataType::SMALLINT(): case DataType::MEDIUMINT(): case DataType::INT(): case DataType::BIGINT(): return $this->strdec($binary); case DataType::DEC(): case DataType::FLOAT(): case DataType::DOUBLE(): return $binary; ### TIME / DATE ### TIME / DATE case DataType::DATE(): return date("Y-m-d", $this->strdec($binary)); case DataType::DATETIME(): return date("Y-m-d H:i:s", $this->strdec($binary)); case DataType::TIMESTAMP(): return date("Y-m-d H:i:s", $this->strdec($binary)); case DataType::TIME(): return date("H:i:s", $this->strdec($binary)); case DataType::YEAR(): return (string) $this->strdec($binary); ### TEXT ### TEXT case DataType::CHAR(): case DataType::VARCHAR(): case DataType::BINARY(): case DataType::VARBINARY(): case DataType::TINYBLOB(): case DataType::TINYTEXT(): case DataType::BLOB(): case DataType::TEXT(): case DataType::MEDIUMBLOB(): case DataType::MEDIUMTEXT(): case DataType::LONGBLOB(): case DataType::LONGTEXT(): case DataType::ENUM(): case DataType::SET(): return $binary; } }