All Projects → guregu → Null

guregu / Null

Licence: bsd-2-clause
reasonable handling of nullable values

Programming Languages

go
31211 projects - #10 most used programming language

Labels

Projects that are alternatives of or similar to Null

Partiql Lang Kotlin
A implementation of PartiQL written in Kotlin.
Stars: ✭ 459 (-60.02%)
Mutual labels:  json, sql
World countries
Constantly updated lists of world countries and their associated alpha-2, alpha-3 and numeric country codes as defined by the ISO 3166 standard, available in CSV, JSON , PHP and SQL formats, in multiple languages and with national flags included
Stars: ✭ 598 (-47.91%)
Mutual labels:  json, sql
Datasette
An open source multi-tool for exploring and publishing data
Stars: ✭ 5,640 (+391.29%)
Mutual labels:  json, sql
Pljson
PL/JSON is a generic JSON object written in PL/SQL. Using PL/SQL object syntax, users instantiate a JSON object and then add members, arrays and additional JSON objects. This object type can store JSON data, in Oracle, persistently.
Stars: ✭ 343 (-70.12%)
Mutual labels:  json, sql
Nano Sql
Universal database layer for the client, server & mobile devices. It's like Lego for databases.
Stars: ✭ 717 (-37.54%)
Mutual labels:  json, sql
Hashover Next
This branch will be HashOver 2.0
Stars: ✭ 353 (-69.25%)
Mutual labels:  json, sql
Trdsql
CLI tool that can execute SQL queries on CSV, LTSV, JSON and TBLN. Can output to various formats.
Stars: ✭ 593 (-48.34%)
Mutual labels:  json, sql
Il Ilce Mahalle Sokak Cadde Sql
Türkiye İl, İlçe, Mahalle, Sokak, Cadde Bilgisi SQL Şeklinde
Stars: ✭ 235 (-79.53%)
Mutual labels:  json, sql
Pmacct
pmacct is a small set of multi-purpose passive network monitoring tools [NetFlow IPFIX sFlow libpcap BGP BMP RPKI IGP Streaming Telemetry].
Stars: ✭ 677 (-41.03%)
Mutual labels:  json, sql
Countries
Countries, Languages & Continents data (capital and currency, native name, calling codes).
Stars: ✭ 656 (-42.86%)
Mutual labels:  json, sql
Mongo Sql
An extensible SQL generation library for JavaScript with a focus on introspectibility
Stars: ✭ 314 (-72.65%)
Mutual labels:  json, sql
Jl Sql
SQL for JSON and CSV streams
Stars: ✭ 44 (-96.17%)
Mutual labels:  json, sql
Sq
swiss-army knife for data
Stars: ✭ 275 (-76.05%)
Mutual labels:  json, sql
Airframe
Essential Building Blocks for Scala
Stars: ✭ 442 (-61.5%)
Mutual labels:  json, sql
Sqawk
Like Awk but with SQL and table joins
Stars: ✭ 263 (-77.09%)
Mutual labels:  json, sql
Poco
The POCO C++ Libraries are powerful cross-platform C++ libraries for building network- and internet-based applications that run on desktop, server, mobile, IoT, and embedded systems.
Stars: ✭ 5,762 (+401.92%)
Mutual labels:  json, sql
Octosql
OctoSQL is a query tool that allows you to join, analyse and transform data from multiple databases and file formats using SQL.
Stars: ✭ 2,579 (+124.65%)
Mutual labels:  json, sql
Algeria Cities
The list of all Algerian provinces and cities according to the official division in different formats: csv, xlsx, php, json, etc.
Stars: ✭ 232 (-79.79%)
Mutual labels:  json, sql
Manticoresearch
Database for search
Stars: ✭ 610 (-46.86%)
Mutual labels:  json, sql
Dito
Dito.js is a declarative and modern web framework with a focus on API driven development, based on Objection.js, Koa.js and Vue.js – Released in 2018 under the MIT license, with support by Lineto.com
Stars: ✭ 44 (-96.17%)
Mutual labels:  json, sql

null GoDoc CircleCI

import "gopkg.in/guregu/null.v4"

null is a library with reasonable options for dealing with nullable SQL and JSON values

There are two packages: null and its subpackage zero.

Types in null will only be considered null on null input, and will JSON encode to null. If you need zero and null be considered separate values, use these.

Types in zero are treated like zero values in Go: blank string input will produce a null zero.String, and null Strings will JSON encode to "". Zero values of these types will be considered null to SQL. If you need zero and null treated the same, use these.

All types implement sql.Scanner and driver.Valuer, so you can use this library in place of sql.NullXXX. All types also implement: encoding.TextMarshaler, encoding.TextUnmarshaler, json.Marshaler, and json.Unmarshaler. A null object's MarshalText will return a blank string.

null package

import "gopkg.in/guregu/null.v4"

null.String

Nullable string.

Marshals to JSON null if SQL source data is null. Zero (blank) input will not produce a null String.

null.Int

Nullable int64.

Marshals to JSON null if SQL source data is null. Zero input will not produce a null Int.

null.Float

Nullable float64.

Marshals to JSON null if SQL source data is null. Zero input will not produce a null Float.

null.Bool

Nullable bool.

Marshals to JSON null if SQL source data is null. False input will not produce a null Bool.

null.Time

Marshals to JSON null if SQL source data is null. Zero input will not produce a null Time.

zero package

import "gopkg.in/guregu/null.v4/zero"

zero.String

Nullable string.

Will marshal to a blank string if null. Blank string input produces a null String. Null values and zero values are considered equivalent.

zero.Int

Nullable int64.

Will marshal to 0 if null. 0 produces a null Int. Null values and zero values are considered equivalent.

zero.Float

Nullable float64.

Will marshal to 0.0 if null. 0.0 produces a null Float. Null values and zero values are considered equivalent.

zero.Bool

Nullable bool.

Will marshal to false if null. false produces a null Float. Null values and zero values are considered equivalent.

zero.Time

Will marshal to the zero time if null. Uses time.Time's marshaler.

Can you add support for other types?

This package is intentionally limited in scope. It will only support the types that driver.Value supports. Feel free to fork this and add more types if you want.

Can you add a feature that ____?

This package isn't intended to be a catch-all data-wrangling package. It is essentially finished. If you have an idea for a new feature, feel free to open an issue to talk about it or fork this package, but don't expect this to do everything.

Package history

As of v4, unmarshaling from JSON sql.NullXXX JSON objects (ex. {"Int64": 123, "Valid": true}) is no longer supported. It's unlikely many people used this, but if you need it, use v3.

Bugs

json's ",omitempty" struct tag does not work correctly right now. It will never omit a null or empty String. This might be fixed eventually.

License

BSD

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].