Skip to content
Merged
9 changes: 9 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -94,3 +94,12 @@ flycheck0/
# Cache directories
.cache/
node_modules/

# dont push large files to git
src/Backend/test_data/parquet
src/Backend/test_data/csv
src/Backend/test_data/json

# Allow s3_source directory
!src/Backend/test_data/s3_source/
!src/Backend/test_data/s3_source/**
7 changes: 2 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ OptiSQL is a custom in-memory query execution engine. The backend (physical exec
### Prerequisites
- Go 1.24+
- Rust 1.70+
- C++ (marco update this)
- C++ 23.0
Comment thread
Rich-T-kid marked this conversation as resolved.
Outdated
- Make
- git

Expand Down Expand Up @@ -72,7 +72,6 @@ Initial development is done in **Go** (`opti-sql-go`), which serves as the prima
- `/operators` - SQL operator implementations (filter, join, aggregation, project)
- `/physical-optimizer` - Query plan parsing and optimization
- `/substrait` - Substrait plan integration
- `/project` - [Add description]

## Branching Model

Expand Down Expand Up @@ -130,6 +129,4 @@ Want to contribute? Check out [CONTRIBUTING.md](CONTRIBUTING.md) for detailed gu
- Build and run instructions

## License

This project is licensed under the terms specified in [LICENSE.txt](LICENSE.txt).

This project is licensed under the terms specified in [LICENSE.txt](LICENSE.txt).
Comment thread
Rich-T-kid marked this conversation as resolved.
Outdated
17 changes: 17 additions & 0 deletions src/Backend/test_data/s3_source/source.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"meta_data":"names of s3 files",
"csv_files":[
"s3://my-bucket/data/file1.csv",
"s3://my-bucket/data/file2.csv",
"s3://my-bucket/data/file3.csv"
],
"json_files":[
"s3://my-bucket/data/file1.json",
"s3://my-bucket/data/file2.json"
],
"parquet_files":[
"s3://my-bucket/data/file1.parquet",
"s3://my-bucket/data/file2.parquet"
]

}
44 changes: 44 additions & 0 deletions src/Contract/operation.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
syntax = "proto3";

package contract;

// The service definition.
service SSOperation {
rpc ExecuteQuery(QueryExecutionRequest) returns (QueryExecutionResponse);
}

// The request message containing the operation details.
message QueryExecutionRequest {
bytes substraight_logical = 1; //SS logical plan
Comment thread
Rich-T-kid marked this conversation as resolved.
Outdated
string sql_statment = 2; // original sql statment
Comment thread
Rich-T-kid marked this conversation as resolved.
Outdated
Comment thread
Rich-T-kid marked this conversation as resolved.
Outdated
string id = 3; // unique id for this client
SourceType source = 4; // (s3 link| base64 data)
Comment thread
Rich-T-kid marked this conversation as resolved.
}

// The response message containing the result.
message QueryExecutionResponse {
string s3_result_link = 1; // s3 link to the result data
ErrorDetails error_type = 2; // error type if any
Comment thread
Rich-T-kid marked this conversation as resolved.
}

message SourceType{
string s3_source = 1; // s3 link to the source data
string mime = 2;
}

enum returnTypes{
Success = 0;
ParseError = 1;
ExecutionError = 2;
SourceError = 3;
UploadError = 4;
OutOfMemory = 5;
UnknownError = 6;
Comment thread
Rich-T-kid marked this conversation as resolved.
Outdated
}
message ErrorDetails{
returnTypes error_type = 1;
string message = 2;
}

// Flow: Upload source file to s3 GRPC call write results to s3
//(client) -> sql statement + source data -> Query parser -> (SS,sql,id,s3 link) -> PerformOperation() -> execution engine -> (proccess data) -> s3 result link -> Query parser -> (s3 result link) -> (client)
Comment thread
Rich-T-kid marked this conversation as resolved.
Outdated
Loading