print column size fix

This commit is contained in:
VaclavT 2021-08-09 09:32:29 +02:00
parent 19585dda8c
commit 474b789d12
5 changed files with 144 additions and 17 deletions

View File

@ -37,15 +37,15 @@ void completion(const char *buf, linenoiseCompletions *lc) {
if (pos == std::string::npos)
return; // cannot find what to complete
std::string token = str.substr(pos+1);
std::string begining = str.substr(0, pos+1);
std::string token = str.substr(pos + 1);
std::string begining = str.substr(0, pos + 1);
for (auto t = commands.begin(); t != commands.end(); ++t) {
if(t->find(token) == 0) {
std::string completion_string = begining + *t;
linenoiseAddCompletion(lc, completion_string.c_str());
}
for (const auto & command : commands) {
if (command.find(token) == 0) {
std::string completion_string = begining + command;
linenoiseAddCompletion(lc, completion_string.c_str());
}
}
}
}
@ -103,7 +103,7 @@ void repl() {
std::getline(std::cin, input);
//write_file_contents(input, code);
} else if (input != "") {
} else if (!input.empty()) {
try {
time_point<high_resolution_clock> start_time = high_resolution_clock::now();
auto result = uSql.execute(input);
@ -126,10 +126,13 @@ void repl() {
int main(int argc, char *argv[]) {
std::vector<std::string> sql_commands{
// boolean datatype "create table ticker ( tablee varchar(3) not null, permaticker integer, ticker varchar(8) not null, name varchar(256) not null, exchange varchar(32), isdelisted boolean, category varchar(32), cusips varchar(256), siccode integer, sicsector varchar(256), sicindustry varchar(256), famasector varchar(256), famaindustry varchar(256), sector varchar(128), industry varchar(128), scalemarketcap varchar(64), scalerevenue varchar(64), relatedtickers varchar(128), currency varchar(3), location varchar(64), lastupdated date, firstadded date, firstpricedate date, lastpricedate date, firstquarter date, lastquarter date, secfilings varchar(256), companysite varchar(256))"
"create table ticker ( tablee varchar(5) not null, permaticker integer, ticker varchar(10) not null, name varchar(256) not null, exchange varchar(32), isdelisted boolean, category varchar(32), cusips varchar(256), siccode integer, sicsector varchar(256), sicindustry varchar(256), famasector varchar(256), famaindustry varchar(256), sector varchar(128), industry varchar(128), scalemarketcap varchar(64), scalerevenue varchar(64), relatedtickers varchar(128), currency varchar(3), location varchar(64), lastupdated date, firstadded date, firstpricedate date, lastpricedate date, firstquarter date, lastquarter date, secfilings varchar(256), companysite varchar(256))",
"load ticker from '/Users/vaclavt/Library/Mobile Documents/com~apple~CloudDocs/Development/usql/tickers.csv')",
"select * from ticker where ticker = 'WFC' and tablee = 'SF1'"
// "create table ticker ( tablee varchar(5) not null, permaticker integer, ticker varchar(10) not null, name varchar(256) not null, exchange varchar(32), isdelisted boolean, category varchar(32), cusips varchar(256), siccode integer, sicsector varchar(256), sicindustry varchar(256), famasector varchar(256), famaindustry varchar(256), sector varchar(128), industry varchar(128), scalemarketcap varchar(64), scalerevenue varchar(64), relatedtickers varchar(128), currency varchar(3), location varchar(64), lastupdated date, firstadded date, firstpricedate date, lastpricedate date, firstquarter date, lastquarter date, secfilings varchar(256), companysite varchar(256))",
// "load ticker from '/Users/vaclavt/Library/Mobile Documents/com~apple~CloudDocs/Development/usql/tickers.csv')",
// "select * from ticker where ticker = 'WFC' and tablee = 'SF1'",
"create table sf1 ( ticker varchar(8), dimension varchar(3), calendar_date date, date_key date, report_period date, last_updated date, accoci float, assets float, assetsavg float, assetsc float, assetsnc float, assetturnover float, bvps float, capex float, cashneq float, cashnequsd float, cor float, consolinc float, currentratio float, de float, debt float, debtc float, debtnc float, debtusd float, deferredrev float, depamor float, deposits float, divyield float, dps float, ebit float, ebitda float, ebitdamargin float, ebitdausd float, ebitusd float, ebt float, eps float, epsdil float, epsusd float, equity float, equityavg float, equityusd float, ev float, evebit float, evebitda float, fcf float, fcfps float, fxusd float, gp float, grossmargin float, intangibles float, intexp float, invcap float, invcapavg float, inventory float, investments float, investmentsc float, investmentsnc float, liabilities float, liabilitiesc float, liabilitiesnc float, marketcap float, ncf float, ncfbus float, ncfcommon float, ncfdebt float, ncfdiv float, ncff float, ncfi float, ncfinv float, ncfo float, ncfx float, netinc float, netinccmn float, netinccmnusd float, netincdis float, netincnci float, netmargin float, opex float, opinc float, payables float, payoutratio float, pb float, pe float, pe1 float, ppnenet float, prefdivis float, price float, ps float, ps1 float, receivables float, retearn float, revenue float, revenueusd float, rnd float, roa float, roe float, roic float, ros float, sbcomp float, sgna float, sharefactor float, sharesbas float, shareswa float, shareswadil float, sps float, tangibles float, taxassets float, taxexp float, taxliabilities float, tbvps float, workingcapital float)",
"load sf1 from '/tmp/sf1.csv')",
// "select * from sf1 where ticker = 'WFC'"
"select * from sf1 limit 10"
// "create table a (i integer not null, s varchar(64), f float null, d date null, b boolean)",
// "insert into a (i, s, b) values(1, upper('one'), 'Y')",
// "select i, s, b from a where i >=1 order by 1 desc offset 0 limit 1",
@ -173,7 +176,7 @@ int main(int argc, char *argv[]) {
usql::USql uSql{};
for (auto command : sql_commands) {
for (const auto& command : sql_commands) {
time_point<high_resolution_clock> start_time = high_resolution_clock::now();
auto result = uSql.execute(command);
time_point<high_resolution_clock> end_time = high_resolution_clock::now();

View File

@ -154,7 +154,7 @@ void Row::setColumnValue(ColDefNode *col_def, ValueNode *col_value) {
for (int ci = 0; ci < m_columns.size(); ci++) {
auto value = m_columns[ci]->getStringValue();
// TODO use string functions
// TODO use string functions handle len
out.append(value + std::string(col_char_sizes[ci] - value.size(), ' ') + " | ");
}

View File

@ -1,6 +1,6 @@
#include "settings.h"
#include "exception.h"
#include "ml_date.h"
namespace usql {
@ -25,6 +25,7 @@ std::basic_string<char> Settings::get_setting(const std::string &name) {
if (pair.first == name) return pair.second;
}
// TODO exception
throw Exception("unsupported setting name: " + name);
}
} // namespace

View File

@ -75,7 +75,6 @@ int Table::load_csv_string(const std::string &content) {
auto csv = csvparser.parseCSV(content);
std::vector<ColDefNode> &colDefs = m_col_defs;
for (auto it = csv.begin() + 1; it != csv.end(); ++it) {
std::vector<std::string> csv_line = *it;
@ -133,7 +132,8 @@ void Table::print() {
std::vector<int> col_char_sizes{};
for(const auto& col_def : m_col_defs) {
int col_size = col_def.type == ColumnType::varchar_type ? col_def.length : 10;
int col_size = col_def.type == ColumnType::varchar_type ? col_def.length :
col_def.type == ColumnType::float_type ? 20 : 10;
col_char_sizes.push_back(col_size);
out.append(string_padd(col_def.name, col_size, ' ', true) + " | ");

123
wip.sql
View File

@ -0,0 +1,123 @@
create table ticker ( tablee varchar(3) NOT NULL, permaticker integer, ticker varchar(8) NOT NULL, name varchar(256) NOT NULL, exchange varchar(32), isdelisted boolean, category varchar(32), cusips varchar(256), siccode integer, sicsector varchar(256), sicindustry varchar(256), famasector varchar(256), famaindustry varchar(256), sector varchar(128), industry varchar(128), scalemarketcap varchar(64), scalerevenue varchar(64), relatedtickers varchar(128), currency varchar(3), location varchar(64), lastupdated date, firstadded date, firstpricedate date, lastpricedate date, firstquarter date, lastquarter date, secfilings varchar(256), companysite varchar(256));
create table sf1 ( ticker varchar(8), dimension varchar(3), calendar_date date, date_key date, report_period date, last_updated date, accoci float, assets float, assetsavg float, assetsc float, assetsnc float, assetturnover float, bvps float, capex float, cashneq float, cashnequsd float, cor float, consolinc float, currentratio float, de float, debt float, debtc float, debtnc float, debtusd float, deferredrev float, depamor float, deposits float, divyield float, dps float, ebit float, ebitda float, ebitdamargin float, ebitdausd float, ebitusd float, ebt float, eps float, epsdil float, epsusd float, equity float, equityavg float, equityusd float, ev float, evebit float, evebitda float, fcf float, fcfps float, fxusd float, gp float, grossmargin float, intangibles float, intexp float, invcap float, invcapavg float, inventory float, investments float, investmentsc float, investmentsnc float, liabilities float, liabilitiesc float, liabilitiesnc float, marketcap float, ncf float, ncfbus float, ncfcommon float, ncfdebt float, ncfdiv float, ncff float, ncfi float, ncfinv float, ncfo float, ncfx float, netinc float, netinccmn float, netinccmnusd float, netincdis float, netincnci float, netmargin float, opex float, opinc float, payables float, payoutratio float, pb float, pe float, pe1 float, ppnenet float, prefdivis float, price float, ps float, ps1 float, receivables float, retearn float, revenue float, revenueusd float, rnd float, roa float, roe float, roic float, ros float, sbcomp float, sgna float, sharefactor float, sharesbas float, shareswa float, shareswadil float, sps float, tangibles float, taxassets float, taxexp float, taxliabilities float, tbvps float, workingcapital float)
create table sf1 (
ticker varchar(8),
dimension varchar(3),
calendar_date date,
date_key date,
report_period date,
last_updated date,
accoci float,
assets float,
assetsavg float,
assetsc float,
assetsnc float,
assetturnover float,
bvps float,
capex float,
cashneq float,
cashnequsd float,
cor float,
consolinc float,
currentratio float,
de float,
debt float,
debtc float,
debtnc float,
debtusd float,
deferredrev float,
depamor float,
deposits float,
divyield float,
dps float,
ebit float,
ebitda float,
ebitdamargin float,
ebitdausd float,
ebitusd float,
ebt float,
eps float,
epsdil float,
epsusd float,
equity float,
equityavg float,
equityusd float,
ev float,
evebit float,
evebitda float,
fcf float,
fcfps float,
fxusd float,
gp float,
grossmargin float,
intangibles float,
intexp float,
invcap float,
invcapavg float,
inventory float,
investments float,
investmentsc float,
investmentsnc float,
liabilities float,
liabilitiesc float,
liabilitiesnc float,
marketcap float,
ncf float,
ncfbus float,
ncfcommon float,
ncfdebt float,
ncfdiv float,
ncff float,
ncfi float,
ncfinv float,
ncfo float,
ncfx float,
netinc float,
netinccmn float,
netinccmnusd float,
netincdis float,
netincnci float,
netmargin float,
opex float,
opinc float,
payables float,
payoutratio float,
pb float,
pe float,
pe1 float,
ppnenet float,
prefdivis float,
price float,
ps float,
ps1 float,
receivables float,
retearn float,
revenue float,
revenueusd float,
rnd float,
roa float,
roe float,
roic float,
ros float,
sbcomp float,
sgna float,
sharefactor float,
sharesbas float,
shareswa float,
shareswadil float,
sps float,
tangibles float,
taxassets float,
taxexp float,
taxliabilities float,
tbvps float,
workingcapital float
)