From 10e93f28c60567a1fc44f9c2d03126f8fe394616 Mon Sep 17 00:00:00 2001 From: Bill Date: Sat, 8 Oct 2022 23:54:59 +0800 Subject: [PATCH] Updated Documentation --- Dockerfile | 5 ++--- README.md | 30 +++++++++++++++++++----------- cims.sh | 6 +++--- tests/dt.a | 1 - tests/network.a | 1 + 5 files changed, 25 insertions(+), 18 deletions(-) diff --git a/Dockerfile b/Dockerfile index ed115d5..aac0a4f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -21,7 +21,6 @@ ENV IS_DOCKER_IMAGE=1 CXX=clang++-14 # First run will build cache into image RUN cd AQuery2 && python3 prompt.py -CMD cd AQuery2 && python3 prompt.py - - +# CMD cd AQuery2 && python3 prompt.py +CMD echo "Welcome. Type python3 prompt.py to start AQuery." && cd AQuery2 && bash diff --git a/README.md b/README.md index 41c4b42..b993728 100644 --- a/README.md +++ b/README.md @@ -8,8 +8,9 @@ AQuery++ Database is a cross-platform, In-Memory Column-Store Database that inco - See installation instructions from [docker.com](https://www.docker.com). Run **docker desktop** to start docker engine. - In AQuery root directory, type `make docker` to build the docker image from scratch. - For Arm-based Mac users, you would have to build and run the **x86_64** docker image because MonetDB doesn't offer official binaries for arm64 Linux. (Run `docker buildx build --platform=linux/amd64 -t aquery .` instead of `make docker`) - - Finally run the image in **interactive** mode (`docker run -it --rm aquery`) - - If there is a need to access the system shell, type `dbg` to activate python interpreter and type `os.system('sh')` to launch a shell. + - Finally run the image in **interactive** mode (`docker run -it aquery --name aquery`) + - When you need to access the container again run `docker start -ai aquery` + - If there is a need to access the system shell within AQuery, type `dbg` to activate python interpreter and type `os.system('sh')` to launch a shell. ## CIMS Computer Lab (Only for NYU affiliates who have access) 1. Clone this git repo in CIMS. @@ -39,16 +40,15 @@ AQuery++ Database is a cross-platform, In-Memory Column-Store Database that inco AQuery is tested on mainstream operating systems such as Windows, macOS and Linux ### Windows -There're multiple options to run AQuery on Windows. You can use the native toolchain from Microsoft Visual Studio or gcc from Cygwin/MinGW or run it under Windows Subsystem for Linux. +There're multiple options to run AQuery on Windows. But for better consistency I recommend using a simulated Linux environment such as **Windows Subsystem for Linux** (1 or 2), **Docker** or **Linux Virtual Machines**. You can also use the native toolchain from Microsoft Visual Studio or gcc from Winlabs/Cygwin/MinGW. -- For WSL, Docker or Linux virtual machines, see Linux, Docker sections below -- For Visual Studio (Recommended): -1. Install python3.6 or above from [official website](https://www.python.org/downloads/windows/) or Microsoft Store. - 2. Install Microsoft Visual Studio 2022 or later with **Desktop development with C++** selected. - 3. Clone AQuery repo from [Github](https://github.com/sunyinqi0508/AQuery2) - 4. Install python requirements with pip `python3 -m pip install -r requirements.txt` - 5. Change the build_driver variable in aquery_config.py to "MSBuild" - 6. The libraries and headers for Monetdb are already included in msc-plugins, however you can also choose to download them from [Monetdb Easy Setup](https://www.monetdb.org/easy-setup/) and put them in the same place. +- Windows Subsystem for Linux (WSL, Recommended) + - Install WSL2 from [Microsoft Store](https://aka.ms/wslstore) + - Install Ubuntu 22.04 LTS from [Microsoft Store](https://apps.microsoft.com/store/detail/ubuntu-22041-lts/9PN20MSR04DW), you can use your favorite distro but make sure you know how to install MonetDB on it. + - Select Linux and then ubuntu in [MonetDB Easy Setup](https://www.monetdb.org/easy-setup/) + - Install Python 3.6 or above + - Install required packages in requirements.txt by `python3 -m pip install -r requirements.txt` + - Run `python3 ./prompt.py` to start AQuery - For Winlibs (Recommended): - Download latest winlibs toolchain from the [official website](https://winlibs.com/) @@ -56,6 +56,14 @@ There're multiple options to run AQuery on Windows. You can use the native toolc - Other steps can be either the same as Visual Studio or Cygwin/Mingw (below) without ABI break. - Copy or link `mingw64/libexec/gcc///liblto-plugin.dll` to `mingw64/lib/bfd-plugins/` For Link time optimization support on gcc-ar and gcc-ranlib +- For Visual Studio: +1. Install python3.6 or above from [official website](https://www.python.org/downloads/windows/) or Microsoft Store. + 1. Install Microsoft Visual Studio 2022 or later with **Desktop development with C++** selected. + 2. Clone AQuery repo from [Github](https://github.com/sunyinqi0508/AQuery2) + 3. Install python requirements with pip `python3 -m pip install -r requirements.txt` + 4. Change the build_driver variable in aquery_config.py to "MSBuild" + 5. The libraries and headers for Monetdb are already included in msc-plugins, however you can also choose to download them from [Monetdb Easy Setup](https://www.monetdb.org/easy-setup/) and put them in the same place. + - For CygWin/MinGW: 1. Install gcc and python3 using its **builtin package manager** instead of the one from python.org or windows store. (For Msys2, `pacman -S gcc python3`). Otherwise, ABI breakage may happen. 2. Clone AQuery repo from Github diff --git a/cims.sh b/cims.sh index 2d4865d..e022920 100644 --- a/cims.sh +++ b/cims.sh @@ -1,10 +1,10 @@ #!/usr/bash echo "Don't execute this script if it's not on CIMS servers." -echo "run this script with source command. e.g. \`source ./cims.sh\` or \`. ./cims.sh\`" -module load g++-11.2 +echo "run this script with source command. e.g. source ./cims.sh or . ./cims.sh" +module load gcc-11.2 PWD=`pwd` export LD_LIBRARY_PATH=$PWD/usr/lib64:$LD_LIBRARY_PATH:/lib:/lib64:/usr/lib:/usr/lib64 export AQ_MONETDB_LIB=-L$PWD/usr/lib64 export AQ_MONETDB_INC=-I$PWD/usr/include/monetdb/ export CXX=g++-11.2 -export PCH=1 # Change to 0 +export PCH=1 diff --git a/tests/dt.a b/tests/dt.a index 55dc8fb..5a52ac1 100644 --- a/tests/dt.a +++ b/tests/dt.a @@ -5,7 +5,6 @@ FUNCTIONS ( fit() -> bool, predict() -> vecint ); - create table tb(x int); create table tb2(x double, y double, z double); insert into tb values (0); diff --git a/tests/network.a b/tests/network.a index 169a8b6..944064c 100644 --- a/tests/network.a +++ b/tests/network.a @@ -10,3 +10,4 @@ FROM network ASSUMING ASC src, ASC dst, ASC _time GROUP BY src, dst, sums (deltas(_time) > 120) +-- Assuming preserve order at the end. \ No newline at end of file